A standard Ethernet switch has user-accessible uplink ports such as RJ45, small form-factor pluggable (SFP), and quad small form-factor pluggable (QSFP). Active networking ports are typically located on one side of the switch. In addition to the networking ports, some switches may provide one or more management ports on another side of the chassis due to the limited space on the single-headed side. However, those switches do not provide data and/or networking ports on two or more sides of the chassis.
Non-volatile memory (NVM) express (NVMe) is a standard that defines a register-level interface for host software to communicate with a non-volatile memory subsystem (e.g., a solid-state drive (SSD)) over a peripheral component interconnect express (PCIe) bus. NVMe over fabrics (NVMf) is an extension to the NVMe standard enabling operation over a variety of fabrics (or interconnects) other than PCIe. Herein, the term, fabric, represents a network topology in which network nodes can pass data to each other through a variety of interconnecting protocols, ports, and switches. For example, Ethernet-attached SSDs may attach directly to a fabric, and in this case the fabric is the Ethernet.
FIG. 1A shows a system block diagram of an example NVMe-based storage system. The single-headed switch 150A includes a motherboard 151 (e.g., x86-based motherboard), a plurality of network interface cards 152A-152L, and a plurality of downlink switch ports (e.g., via PCIe) 153A-153M for providing device interfaces to a plurality of front-access drives using cables and connectors arranged in a midplane/backplane 160A. The front-access drives may be solid-state drives (SSDs) 170A-170N. The downlink switch ports 153A-153M can support PCIe interfaces. The single-headed switch 150A has a plurality of uplink ports 110 to receive requests from a plurality of initiators (e.g., servers and clients) to the targeted SSDs 170A-170N. The plurality of uplink ports 110 can be used to provide the requested data or a status (e.g., write completion) from the SSDs 170A-170N. The single-headed switch 150A can be used in an NVMe-based server or storage system.
FIG. 1B shows a system block diagram of an example NVMf-based storage system. The single-headed switch 150B includes an Ethernet switch 155 in 1 RU and a drive bay in 2 RU. The drive bay includes a pass-through board 157, and a midplane/backplane 160B. The pass-through board 157 includes a plurality of quad small form-factor pluggable (QSFP) connectors to connect to targeted SSDs 170A-170N. The single-headed switch 150B has a plurality of uplink ports 110 to receive requests from a plurality of initiators (e.g., servers and clients) to the targeted SSDs 170A-170N. The plurality of uplink ports 110 can be used to provide the requested data or a status (e.g., write completion) from the SSDs 170A-170N. The single-headed switch 150B can be used in an NVMf-based server or storage system.
To provide connectivity for devices or servers compatible with NVMe over fabric to SSD drives, a standard switch may be used. However, the standard switch would need a rack space and a deeper chassis to accommodate bulky internal connectors and cables for the uplink and downlink ports. These internal connectors and cables may prohibit fully exploiting the high-speed connectivity that NVMe over fabric devices may offer. Further, the use of the standard external switches to support NVMe over fabric would be costly due to the requirement for an additional power supply for the drive bay chassis in addition to a power supply for the external switch.